﻿//using System;
//using Microsoft.Practices.Unity;
//using Microsoft.VisualStudio.TestTools.UnitTesting;
//using Rhino.Mocks;
//using TestByWire.AttributeHandlers;

//namespace TestByWire.Test.Infrastructur
//{
//    [TestClass]
//    public class TestByWireTestMethodInvokerTest
//    {
//        private TestMethodInvokerContext _invokerContext;
//        private IAttributeStackManager _attributeStackManager;
//        private IUnityContainer _container;

//        [TestInitialize]
//        public void PerTestSetup()
//        {
//            _invokerContext = MockRepository.GenerateStub<TestMethodInvokerContext>();
//            _attributeStackManager = MockRepository.GenerateStub<IAttributeStackManager>();
//            _container = MockRepository.GenerateStub<IUnityContainer>();
//        }

//        [TestMethod]
//        public void ConstructorMustNotAcceptNullAsInvokerContext()
//        {
//            var exception = AssertEx.Throws<ArgumentNullException>(() => new TestByWireTestMethodInvoker(null, _attributeStackManager, _container));

//            Assert.AreEqual("invokerContext", exception.ParamName);
//        }

//        [TestMethod]
//        public void ConstructorMustNotAcceptNullAsAttributeStackManager()
//        {
//            var exception = AssertEx.Throws<ArgumentNullException>(() => new TestByWireTestMethodInvoker(_invokerContext, null, _container));

//            Assert.AreEqual("attributeStackManager", exception.ParamName);
//        }

//        [TestMethod]
//        public void ConstructorMustNotAcceptNullAsContainer()
//        {
//            var exception = AssertEx.Throws<ArgumentNullException>(() => new TestByWireTestMethodInvoker(_invokerContext, _attributeStackManager, null));

//            Assert.AreEqual("container", exception.ParamName);
//        }
//    }
//}
